package com.qijian.maindata.domain.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.maindata.domain.Bom;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.List;

/**
 * 生产BOM对象
 *
 * @author qijian
 * @date 2021-09-01
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
public class BomVo4App extends Bom {
    /**
     * ID
     */
    @TableId
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "ID")
    private Long storageId;

    /**
     * 文件名
     */
    @Excel(name = "文件名")
    @ApiModelProperty(value = "文件名")
    private String name;

    /**
     * 路径
     */
    @Excel(name = "路径")
    @ApiModelProperty(value = "路径")
    private String url;

    /**
     * 最新的工艺文件-ID
     */
    @TableId
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "ID")
    private Long craftStorageId;

    /**
     * 最新的工艺文件-文件名
     */
    @Excel(name = "文件名")
    @ApiModelProperty(value = "文件名")
    private String craftName;

    /**
     * 最新的工艺文件-路径
     */
    @Excel(name = "路径")
    @ApiModelProperty(value = "路径")
    private String craftUrl;

    private Integer processFilesCnt;

    private List<BomDetailVo> bomDetails;

    private String projectManager;

    @ApiModelProperty(value = "ecn变更记录数")
    private Integer ecnCnt;

    private String phonenumber;

    private String finishType;

    private String bomCodeStr;

    private String bomNameStr;

    /**
     * 物料名称
     */
    @Excel(name = "物料名称")
    @ApiModelProperty(value = "物料名称")
    private String itemName;

    /**
     * 物料分类
     */
    @Excel(name = "物料分类")
    @ApiModelProperty(value = "物料分类")
    private String itemClassify;

    /**
     * 物料分类
     */
    @ApiModelProperty(value = "物料分类编码")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long itemClassifyId;

    /**
     * 物料规格
     */
    @Excel(name = "物料规格")
    @ApiModelProperty(value = "物料规格")
    private String itemSpec;

    /**
     * 物料类型
     */
    @Excel(name = "物料类型")
    @ApiModelProperty(value = "物料类型")
    private String itemType;
}
